/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"6E407B4A-1617-4BF5-8B30-F5BDC2C4E167",variableType:4}
 */
var es_preview = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"BFAF457D-1202-4B68-A871-B236ACB3795A",variableType:8}
 */
var fIva_1 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"42BE52CC-FACE-4DC6-8F89-39AAA566B5DE",variableType:8}
 */
var fIva_2 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"55F6CC5F-673E-445E-B3D0-FA470CCBC81F",variableType:8}
 */
var fIva_3 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"40B2F675-E0F4-49EB-ABF0-5F1DB4A562B4",variableType:8}
 */
var fIva_4 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"D7AF41CB-584F-4DAD-9471-DAF39B524F02",variableType:8}
 */
var fNeto_1 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"FD9EE50F-4EEC-4588-ABC0-288E6AC0FD74",variableType:8}
 */
var neto_1_no_grav = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"9D373A9C-DB68-4E63-A483-79017B2A3B8B",variableType:8}
 */
var fNeto_2 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"E1265EB9-EE4A-4560-AEAF-1A753FA14136",variableType:8}
 */
var neto_2_no_grav = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"5E432B51-F678-45FC-B717-4C2CDD494C2B",variableType:8}
 */
var fNeto_3 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"55DAE915-F6B5-44A1-9565-BA1829AEF4AD",variableType:8}
 */
var neto_3_no_grav = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"6C4ED24C-A5EF-484A-B879-BF801AB6B124",variableType:8}
 */
var fNeto_4 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"A07466C3-5610-4078-A042-221F47CEAE24",variableType:8}
 */
var neto_4_no_grav = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"D18DCFA7-5B58-466B-98F9-CDDAAFF18325",variableType:8}
 */
var porc_1 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"5F3DE157-1A20-46C1-A0D9-6198ADA118B2",variableType:8}
 */
var porc_2 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"B48D431E-5A74-4128-B40F-C119E4798688",variableType:8}
 */
var porc_3 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"7E7698A2-0B2F-4E22-B83A-80D4F3EEFD03",variableType:8}
 */
var porc_4 = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"6C57FD7D-8249-4D27-8E7D-BAAF95A1BD99",variableType:8}
 */
var T_importe = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"3143A70B-5F33-49A1-8F36-FB93D45FD299",variableType:8}
 */
var T_iva = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"9FAE4B33-BDCA-44A6-B5A7-AE7F12DF6314",variableType:8}
 */
var T_neto = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"D0AD79CB-CAEC-4672-9B82-B0A30EE30CF0",variableType:8}
 */
var T_neto_no_gravado = null;

/**
 *
 * @properties={typeid:24,uuid:"7B0C615E-81D4-4177-933D-1FF16B77C47E"}
 */
function calcular_totales()
{
	globals.ghoja_desde_diario = 0;
	var tabla_totales = databaseManager.createEmptyDataSet(10,3)
	
	for ( var k = 0 ; k < 10 ; k ++ )
	{
		tabla_totales.setValue(k, 1, 0.00);
		tabla_totales.setValue(k, 2, 0.00);
		tabla_totales.setValue(k, 3, 0.00);
	}
	
	// recorre foundset
	T_neto 				= 0
	T_iva				= 0
	T_importe			= 0
	T_neto_no_gravado 	= 0
	for ( var i = 1 ; i <= controller.getMaxRecordIndex(); i++ )
	{
		foundset.setSelectedIndex(i)
		
		//  usando calculations
		if (letra != 'E')
			T_neto 	+= neto_signo;
		T_iva 		+= iva_signo;
		T_importe 	+= importe_signo;
		if (letra == 'E')
			T_neto_no_gravado += neto_no_gravado_signo_diario;
		else
			T_neto_no_gravado += neto_no_gravado_signo;
		
		var k = ctacte_cl_to_tasa_iva_porc.tasa_iva_id
			
		tabla_totales.setValue(k, 1, iva_porc)
		tabla_totales.setValue(k, 2, tabla_totales.getValue(k, 2) + iva_signo)
		if (letra != 'E')
			tabla_totales.setValue(k, 3, tabla_totales.getValue(k, 3) + neto_signo);
	}
	
	for ( var k = 1 ; k <= 10 ; k ++ )
	{
		if (tabla_totales.getValue(k, 1) != 0 && tabla_totales.getValue(k, 2) != 0 && tabla_totales.getValue(k, 3) != 0)		
		{
			fIva_1	= tabla_totales.getValue(1, 2)
			fIva_2	= tabla_totales.getValue(2, 2)
			fIva_3	= tabla_totales.getValue(3, 2)
			fIva_4	= tabla_totales.getValue(4, 2)
			porc_1	= tabla_totales.getValue(1, 1)
			porc_2	= tabla_totales.getValue(2, 1)
			porc_3	= tabla_totales.getValue(3, 1)
			porc_4	= tabla_totales.getValue(4, 1)
			fNeto_1	= tabla_totales.getValue(1, 3)
			fNeto_2	= tabla_totales.getValue(2, 3)
			fNeto_3	= tabla_totales.getValue(3, 3)
			fNeto_4	= tabla_totales.getValue(4, 3)
	
		}
	}               
}

/**
 * @properties={typeid:24,uuid:"421A1D3A-1F60-4C91-9212-3F06007CFA97"}
 */
function imprimir() 
{
	es_preview = 1
	forms.diario_vtas_2_imp.controller.showPrintPreview(false)
}

/**
 * @properties={typeid:24,uuid:"7D38FCE0-AB95-4074-9294-D3D2DFB9E7D6"}
 */
function pdf() 
{
	globals.metodoPdf('diario_vtas_2_imp','Diario_ventas',true)
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"19B3E2BD-6134-41A6-8AE9-07DC66FC706E"}
 */
function onShow(firstShow, event) {
	if (es_preview == 1)
	{
		es_preview = 0
	}
	else
	{
		calcular_totales()
	}
}

/**
 * @properties={typeid:24,uuid:"2A106B60-B7A1-447C-84A6-E3C1FB32C3B0"}
 */
function xls() {
	archivoExcel('.xls','<TABLE CELLPADDING="1" CELLSPACING="0" BORDER="0">','<tr><td>','','</td><td>','</td></tr>','</table>')
}

/**
 * @properties={typeid:24,uuid:"2E6056FC-DFC0-4EDE-A412-A4A257032517"}
 */
function csv()
{
	archivoExcel('.csv','','','"',';','','')
}

/**
 * @param {String} extension
 * @param {String} comienzo_archivo
 * @param {String} comienzo_linea
 * @param {String} marca_txt
 * @param {String} separador
 * @param {String} fin_linea
 * @param {String} fin_archivo
 *
 * @properties={typeid:24,uuid:"F937F8E0-AA2C-4BA7-AB24-F1C73B2EB452"}
 */
function archivoExcel(extension,comienzo_archivo,comienzo_linea,marca_txt,separador,fin_linea,fin_archivo)
{
	/** @type {Date}*/
	var fecha 	= application.getServerTimeStamp()
	fecha 		= utils.dateFormat(fecha,'dd-MM-yyyy hh-mm-ss')
	var $nombre = 'Diario_Ventas_' + fecha + extension
	var jsFile
	if (application.getApplicationType() == APPLICATION_TYPES.WEB_CLIENT)
	{
		jsFile = plugins.file.createFile($nombre)
	}
	else
	{
		jsFile = plugins.file.showFileSaveDialog($nombre)
	}
	if (jsFile)
	{
		var fw = new Packages.java.io.FileWriter(jsFile.getAbsolutePath());
		var bw = new Packages.java.io.BufferedWriter(fw);
		if (comienzo_archivo != '')
		{
			bw.write(comienzo_archivo,0,comienzo_archivo.length)
			bw.newLine()
		}
		//TITULO + NOMBRE Y CUIT DE LA EMPRESA
		var linea = comienzo_linea + 'Diario de Ventas' + fin_linea
		bw.write(linea,0,linea.length)
		bw.newLine()
		linea = comienzo_linea + usuarios_to_uservs.descripcion + fin_linea
		bw.write(linea,0,linea.length)
		bw.newLine()
		linea = comienzo_linea + usuarios_to_uservs.cuit + fin_linea
		bw.write(linea,0,linea.length)
		bw.newLine()
		
		//ESCRIBO EL NOMBRE DE LAS COLUMNAS
		linea = comienzo_linea
		linea += 'fecha' + separador
		linea += 'Comprobante' + separador
		linea += 'Nro.Compr.' + separador
		linea += 'Empresa' + separador
		linea += 'CUIT' + separador
		linea += 'Tipo Iva' + separador
		linea += 'Neto' + separador
		linea += 'No Gravado' + separador
		linea += 'Iva' + separador
		linea += 'IVA %' + separador
		linea += 'Importe' + separador
		linea += fin_linea
		bw.write(linea,0,linea.length)
		
		linea 	= comienzo_linea
		var fs 	= foundset					
		var i = 1
		var $cant = databaseManager.getFoundSetCount(fs)
		while ((i <= globals.gLimiteCsv) && (i <= $cant))
		{
			var $rcd = fs.getRecord(i)
			
			bw.newLine()
			linea = comienzo_linea
			linea += utils.dateFormat($rcd.fecha_mov,'dd-MM-yyyy') + separador
			linea += application.getValueListDisplayValue('tab_mov_cl',$rcd.cod_mov) + separador
			linea += $rcd.comprob_completo + separador
			linea += $rcd.ctacte_cl_to_clientes.razon_social + separador
			linea += $rcd.ctacte_cl_to_clientes.cuit + separador
			linea += $rcd.ctacte_cl_to_clientes.clientes_to_relacion_iva_letra.relacion_iva_letra_to_tipo_iva.tipo_iva_desc + separador
			linea += $rcd.neto_signo_diario + separador
			linea += $rcd.neto_no_gravado_signo_diario + separador
			linea += $rcd.iva_signo + separador
			linea += $rcd.iva_porc + separador
			linea += $rcd.importe_signo + separador
			linea += fin_linea
			bw.write(linea,0,linea.length)
			i++
		}
		
		//TOTALES
		bw.newLine()
		linea = comienzo_linea
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += 'Totales' 			+ separador
		linea += T_neto 			+ separador
		linea += T_neto_no_gravado 	+ separador
		linea += T_iva + separador
		linea += '' + separador
		linea += T_importe 			+ separador
		linea += fin_linea
		bw.write(linea,0,linea.length)
		
		//NETO 1
		bw.newLine()
		linea = comienzo_linea
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += 'Neto 1' 			+ separador
		linea += porc_1 			+ separador
		linea += fNeto_1			+ separador
		linea += '' + separador
		linea += fIva_1 			+ separador
		linea += '' + separador
		linea += '' + separador
		linea += fin_linea
		bw.write(linea,0,linea.length)
		
		//NETO 2
		bw.newLine()
		linea = comienzo_linea
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += 'Neto 2' 			+ separador
		linea += porc_2 			+ separador
		linea += fNeto_2			+ separador
		linea += '' + separador
		linea += fIva_2 			+ separador
		linea += '' + separador
		linea += '' + separador
		linea += fin_linea
		bw.write(linea,0,linea.length)
		
		//NETO 3
		bw.newLine()
		linea = comienzo_linea
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += 'Neto 3' 			+ separador
		linea += porc_3 			+ separador
		linea += fNeto_3			+ separador
		linea += '' + separador
		linea += fIva_3 			+ separador
		linea += '' + separador
		linea += '' + separador
		linea += fin_linea
		bw.write(linea,0,linea.length)
		
		//NETO 4
		bw.newLine()
		linea = comienzo_linea
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += '' + separador
		linea += 'Neto 4' 			+ separador
		linea += porc_4 			+ separador
		linea += fNeto_4			+ separador
		linea += '' + separador
		linea += fIva_4 			+ separador
		linea += '' + separador
		linea += '' + separador
		linea += fin_linea
		bw.write(linea,0,linea.length)
		
		if (fin_archivo != '')
		{
			bw.write(fin_archivo,0,fin_archivo.length)
		}
		bw.close()
		fw.close()
		if (application.getApplicationType() == APPLICATION_TYPES.WEB_CLIENT)
		{
			var mimeType = 'application/vnd.ms-excel'
			if (!plugins.file.writeFile(jsFile.getName(), jsFile.getBytes(), mimeType))
			{
				globals.DIALOGS.showErrorDialog('Error','Ocurrió un error y no se pudo grabar el archivo','OK');
			}
			plugins.file.deleteFile(jsFile.getAbsolutePath())
		}
		else
		{
			application.executeProgram("rundll32.exe", ["url.dll,FileProtocolHandler", jsFile.getAbsolutePath()])
		}
	}
}